The disclosure relates generally to methods and apparatus to assign processing core workloads to processing systems.
Datacenters, and in particular cloud datacenters, are becoming increasingly utilized to execute processing core workloads. Cloud datacenters may include a multitude of servers that operate over a network (e.g., the internet) and make available their computing and memory resources to service subscribers. By subscribing to use the services of a cloud datacenter, a subscriber is able to submit processing core workloads, such as software applications, to one or more of the cloud datacenter's servers for processing execution. For example, software applications may execute on a cloud datacenter's server such that software application users are able to access the software applications over the network. The servers may include one or more general purpose processors, whereby the general purpose processors include one or more processing cores. These processing cores, as known in the art, are based on instruction set architectures (ISAs). More popular processing core ISAs include ARM® and x86 ISAs. Servers may include processing cores that are all based on the same ISA. For example, a server may include general purpose processors that include only processing cores based on the ARM® ISA. Servers may also include processing cores based on different ISAs. For example, a heterogeneous ISA based server may include one or more general purpose processors that include processing cores based on different ISAs, such as ARM® and x86 ISAs. As such, datacenters, for example cloud datacenters, may include servers that include processing cores based on the same, or different, ISA(s).
As mentioned, these servers and their associated processing cores may be available for processing core workload processing. Processing cores based on a particular ISA may be more suitable for different types of processing core workloads than processing cores based on another ISA due to, for example, varying features of the ISA based processing core. For example, processing cores based on different ISAs may have varying memory architectures such as varying memory page sizes. As a result, a processing core based on one ISA may have differing performance characteristics than a processing core based on a different ISA. As such, these varying characteristics of ISA based processing cores may lead to differing results when measured according to a processing core metric (e.g., results based on a particular processing core metric). Processing core metrics may include, for example, startup (e.g., bootup) times, processing core execution rates, and processing core power efficiencies. For example, a processing core based on one ISA may be more power efficient than a processing core based on a different ISA. Similarly, a processing core based on one ISA may execute at a faster rate than a processing core based on a different ISA.
In addition, processing core workloads such as, for example, software applications may have associated requirements or preferences (e.g., processing core workload importance information) for execution. For example, execution requirements or preferences may include processing core or server bootup (e.g., startup) times (e.g., maximum amount of time before processing core workload execution), execution times (e.g., maximum amount of time for executing the processing core workload), memory requirements, and others as known in the art. These requirements or preferences may be used to determine whether a processing workload is critical. For example, critical processing workloads may include processing workloads that should be executed as quickly as possible and/or before other (e.g., non-critical) processing workloads based upon execution requirements or preferences. As such, it may be more desirable to have a processing core based on a particular ISA process a particular processing core workload than to have it processed by a processing core based on another ISA. Thus, there are opportunities for elaborate placement (e.g., assignment) of processing core workloads to ISA-based processing cores most suited to execute a particular processing core workload.